<?php
/**
 * 基类
 *
 * @version $Id: SqlBase.php 171 2014-04-02 03:09:15Z linsir123 $
 * @package ActiveRecord
 */
class SqlBase
{
	/**
	 * SQL引号
	 *
	 * @param mixed $var 待处理的数据
	 *
	 * @return mixed
	 */
	public function _quote($var)
	{
		$var = is_array($var) ?
			array_map(array(& $this, '_quote'), $var) :
			'`' . trim($var) . '`';

		///
		return $var;
	}

	/**
	 * 转义SQL变量
	 *
	 * @param mixed $var 待处理的数据
	 *
	 * @return mixed
	 */
	public function _escape($var)
	{
		if (is_bool($var))
			$var = $var ? 1 : 0;
		elseif (is_null($var))
			$var = 'NULL';
		elseif (is_string($var))
			$var = "'" . addslashes($var) . "'";
		elseif (is_array($var))
			$var = array_map(array(& $this, '_escape'), $var);
		elseif ($var instanceof FieldExpression)
			$var = $var->expression;

		///
		return $var;
	}
}

/**
 * 字段表达式
 */
class FieldExpression
{
	/**
	 * 表达式
	 *
	 * @var string
	 */
	public $expression;

	/**
	 * 构造函数
	 *
	 * @param string $string
	 */
	public function __construct($string)
	{
		$this->expression = $string;
	}
}
